{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Planning production in a plastic injection company\n", "## Problem definition\n", "\n", "Patrick \"Eel\" O'Brian's (PEOB) Ltd. is a company that manufactures plastic components for the automotive sector. \n", "As an intern at PEOB Ltd, your first assignment is to write an Integer Programming Model to calculate the optimal production plan for the plastic injection machine. \n", "The injection machine heats plastic and injects it into a mould to get a specific shape. Each mould can thus only be used to manufacture specific component types. Your first version will take into account the storage costs and the delayed orders cost which are defined below. \n", "\n", "**Storage costs**\n", "The storage or inventory costs represent the cost of storing the inventory levels of every component type at every planning period and are modeled as a fixed cost per unit and planning period. The storage costs are different for every component type.\n", "\n", "**Delayed orders costs**\n", "At every planning period, you may delay part of the demand for the next planning period. Customers will apply a fixed penalty for every delayed unit at every period. The delayed costs are also different for every component type.\n", "\n", "Your model needs to take into account the following additional data: \n", "\n", "**Initial Inventory Levels (units)**: There is an initial inventory level for every component type available at the first planning period that needs to be taken into account.\n", "\n", "**Minimum and Maximum Inventory Levels (units)**: There is a maximum and a minimum inventory level for every component type.\n", "\n", "**Machine capacity (units)**: The machine capacity represents the number of units of a given component type that the machine can produce using a given mould. If a mould cannot be used to manufacture a component type, the machine capacity is zero for that combination of component type and mould.\n", "\n", "**Demand (Units)**: The company has several confirmed orders for the following periods and therefore, our model needs to take into account the demand for every product at every planning period. \n", "\n", "**a.** Write down the indexes and decision variables\n", "\n", "**b.** Write down the objective function\n", "\n", "**c.** Write down the constraints\n", "\n", "You have successfully validated your model, and it is already providing valuable information for the company. Now the company would like to extend the model to take into account as well the set-up costs:\n", "\n", "**Set up costs**\n", "As explained above, the injection machine uses different moulds to manufacture different parts. Each time that a mould is changed to make a different component, the operators need to set up the machine. The company estimates that this setup cost only depends on the mould that is used and is only applied when a product is changed.\n", "\n", "**d.** Modify the model to take into account the set-up costs." ] }, { "cell_type": "markdown", "metadata": {}, "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.4" }, "pycharm": { "stem_cell": { "cell_type": "raw", "source": [], "metadata": { "collapsed": false } } } }, "nbformat": 4, "nbformat_minor": 2 }